/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entities.utilisateur;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

/**
 *
 * @author loic.vaugeois
 */
@Entity
@DiscriminatorValue(value="authentif")
@NamedQueries({
@NamedQuery(name = "RepondantAuthentifie.findByLogin", query
        = "SELECT c FROM RepondantAuthentifie c WHERE c.login = :login ")
})
public class RepondantAuthentifie extends AbstractRepondant {

    /*
     ***************************ATTRIBUT
     */
    /**
     * mail du Repondant
     */
    private String mail;

    /**
     * login de la personne
     */
    private String login;


    /*
     *****************************GETTER/STTER
     */

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        if (mail.matches("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+$")) Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, "L'Email n'est pas valide.");
        this.mail = mail;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String unLogin){
        this.login = unLogin;
    }


/*
 ****************************CONSTRUCTEUR
 */
    /**
     * Constructeur RepondantAuthentifie
     * @param nom
     * @param prenom
     */
    public RepondantAuthentifie(String nom, String prenom , String login, String mail) {
        super(nom, prenom);
        setMail(mail);
        if (nom==null) throw new IllegalArgumentException("Un RepondantAuthentifie ne peut pas avoir de nom NULL.");
        if (nom.isEmpty()) throw new IllegalArgumentException("Un RepondantAuthentifie ne peut pas avoir de nom vide");
        if (prenom==null) throw new IllegalArgumentException("Un RepondantAuthentifie ne peut pas avoir de prenom NULL.");
        if (prenom.isEmpty()) throw new IllegalArgumentException("Un RepondantAuthentifie ne peut pas avoir de prenom vide");
        if (login==null) throw new IllegalArgumentException("Un RepondantAuthentifie ne peut pas avoir de login NULL.");
        if (login.isEmpty()) throw new IllegalArgumentException("Un RepondantAuthentifie ne peut pas avoir de login vide");
    }
    /**
     * Constructeur nécessaire à JPA
     */
    public RepondantAuthentifie(){
        
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }


}
